package filterbar;

import java.util.List;

/**
 * 创建时间：2017年01月10日13:28 <br>
 * 作者：fuchaoyang <br>
 * 描述：同级别的module必须是相同的，一级列表必须是list，不使用区域筛选（一级是区域和地铁：没法构建一级数据，也没法处理二级）
 * 如果是区域这种，需要自己构建module（二级module不一致）
 */

public interface FilterDataSet {
  String getText();

  String getValue();

  /**
   * 这里有个问题，不支持递归module即同一module嵌套自己；
   * 这种筛选框是针对筛选项是配置的，通过筛选项module可以直接知道是几级的，其他不适用
   */
  //int getSubCount();
  //boolean hasSub();

  /**
   * 统一使用SubFilterDataSet吧，不然trans的时候不好处理，不知道是否还有下一级，也就不知道这里返回sub还是filterDataset
   * 二级,返回SubFilterDataSet根据getSubCount判断是否还有下一级别，然后通过该方法获取下一级别的数据
   * 然后调用{@link FilterTransUtil#trans(List)}
   */
  List<? extends FilterDataSet> getSubDataSet();
}
